package com.situ.company.employee.service;

import java.util.List;

import com.situ.company.employee.dao.EmployeeDao;
import com.situ.company.employee.model.EmployeeModel;

//业务层/逻辑层--增删改查
//目的-在某个功能操作发生后，能保证数据库中的数据是正确的（不能脏数据）
public class EmployeeService {

	private EmployeeDao dao = new EmployeeDao();

	// 返回类型的作用：为了在调用该方法后，通过返回结果，知道该方法调用过程中的执行情况
	/**
	 * 添加
	 * 
	 * @param model
	 * @return
	 */
	public String insert(EmployeeModel model) {
		// 添加的主键不存在时允许添加，否则不允许添加
		EmployeeModel mdb = selectModel(model);
		if (mdb != null)
			return "E";
		Integer result = dao.insert(model);
		return String.valueOf(result);
	}

	/**
	 * 删除
	 * 
	 * @param model
	 * @return
	 */
	public String delete(EmployeeModel model) {
		Integer result = dao.delete(model);
		return String.valueOf(result);
	}

	/**
	 * 修改
	 * 
	 * @param model
	 * @return
	 */
	public String update(EmployeeModel model) {
		Integer result = dao.update(model);
		return String.valueOf(result);
	}

	/**
	 * 多条件的模糊查询出一些记录
	 * 
	 * @param model
	 * @return
	 */
	public List<EmployeeModel> selectList(EmployeeModel model) {
		String code = model.getCode();
		if (code != null)
			model.setCode("%" + code + "%");
		String name = model.getName();
		if (name != null)
			model.setName("%" + name + "%");
		return dao.selectList(model);
	}

	/**
	 * 根据主键查询出唯一记录，不存在返回null
	 * 
	 * @param model
	 * @return
	 */
	public EmployeeModel selectModel(EmployeeModel model) {
		EmployeeModel temp = new EmployeeModel();
		temp.setCode(model.getCode());
		List<EmployeeModel> list = dao.selectList(temp);
		// if(FmtEmpty.isEmpty(list))
		if (list == null || list.isEmpty())
			return null;
		return list.get(0);
	}

	// 账号登录 返回0账号不存在，1登录成功，2密码错误
	// public String login(EmployeeModel model) {
	// EmployeeModel mdb = selectModel(model);
	// if (mdb == null)
	// return "0";
	// return mdb.getPass().equals(model.getPass()) ? "1":"2";
	//
	// }
	/**
	 * 多条件查询出的记录条数
	 * 
	 * @param model
	 * @return
	 */
	public int selectCount(EmployeeModel model) {
		EmployeeModel mdb = new EmployeeModel();
		String code = model.getCode();
		mdb.setCode(code == null ? "%%" : "%" + code + "%");
		String name = model.getName();
		mdb.setName(name == null ? "%%" : "%" + name + "%");
		return dao.selectCount(mdb);
	}

}
